
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>下面结果代码输出的结果 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>下面结果代码输出的结果 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">在 Java 中，`==` 运算符在比较基本类型和引用类型时有何不同？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">对于基本类型，`==` 运算符比较的是数值。对于引用类型，`==` 运算符比较的是对象的内存地址。因此，对象的内内容比较建议使用 `equals` 方法。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Java 的 `Integer` 类存在一个缓存区机制，其默认缓存的数值范围是多少？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Java 的 `Integer` 类会把 -128 到 127 之间的数值放入一个缓存区中。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">为什么在 Java 中 `Integer a = 10; Integer b = 10;` 的情况下 `a == b` 为 `true`，而 `Integer c = 200; Integer d = 200;` 的情况下 `c == d` 为 `false`？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">这是因为 Java 的 `Integer` 类缓存了 -128 到 127 之间的整数。数值 10 在此范围内，因此 `a` 和 `b` 引用的是缓存中同一个对象，内存地址相同。而数值 200 超出此范围，系统会为 `c` 和 `d` 分别创建新的 `Integer` 对象，导致它们的内存地址不同。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">当需要比较两个 `Integer` 对象所代表的数值是否相等时，推荐使用哪种方法，为什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">推荐使用 `equals` 方法。因为 `==` 运算符对于引用类型比较的是内存地址，只有当数值在缓存范围内时结果才可能为 `true`，超出范围就会创建不同对象导致比较为 `false`，而 `equals` 方法始终比较的是对象的内容（即数值本身）。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">文档中的源码截图揭示了 `Integer` 缓存是如何实现的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">源码显示，`Integer.valueOf(int i)` 方法会判断传入的整数 `i` 是否在 `IntegerCache` 的缓存范围内（-128 至 127）。如果在范围内，就从缓存数组 `cache` 中返回已存在的实例；如果不在，则通过 `new Integer(i)` 创建一个新的对象实例。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">代码 `Integer a = 10;` 体现了 Java 的什么特性？这个特性与 `Integer` 缓存有什么关联？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">这体现了 Java 的自动装箱（Autoboxing）特性，即将基本类型 `int` 自动转换为包装类 `Integer`。在自动装箱时，底层实际调用的是 `Integer.valueOf()` 方法，该方法会应用 `Integer` 的缓存机制，从而影响使用 `==` 比较时的结果。</div>
          </div>
          <div class="card-source">来源: 考察的有两个点</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
